import requests
import json
#url = "https://gigachat.devices.sberbank.ru/api/v1/chat/completions"

def getPayLoad(content):
    """
    Создаем контейнер с текстовым запросом от пользователя для отправки в чат GigaChat
    :param content: Получает текст сообщения
    :return: Возвращает контейнер с текстовым запросом и его настройки
    """
    payload = json.dumps({
      "model": "GigaChat",
      "messages": [
        {
          "role": "user",
          "content": str(content)
        }
      ],
      "temperature": 1,
      "top_p": 0.1,
      "n": 1,
      "stream": False,
      "max_tokens": 512,
      "repetition_penalty": 1
    })
    return payload

def getHeaders(token):
    """
    Создаем Headers POST зпароса
    :param token: Получает токен авторизации
    :return: Возвращает заголовок для POST запроса
    """
    tok = "Bearer " + token
    headers = {
      'Content-Type': 'application/json',
      'Accept': 'application/json',
      'Authorization': str(tok)
    }
    return headers

def getTextGigaChat(content,token,metod="POST",url="https://gigachat.devices.sberbank.ru/api/v1/chat/completions"):
    """
    Отправляем POST зпарос на получения ответа на текстовый запрос
    :param content: Текстовый запрос в Gigachat
    :param token: Сгенерированый токен при регистрации дается на 30 мин
    :param metod: Какой метод используется для запроса по (укмолчанию POST)
    :param url:  Адрес для POST получения ответа на текстовый запрос
    :return: Возвращает ответ на текстовый запрос ответ в формате строки но с заявкой на словарь
    """
    payload = getPayLoad(content)

    headers = getHeaders(token)
    
    response = requests.request(metod, url, headers=headers, data=payload, verify=False)
    
    return response.text